
#ifndef __MAIN_H
#define __MAIN_H
#include <stdio.h>

#define false  0 
#define true !false

#include "misc.h"
#include "config.h"
//#include "core_cm3.h"

// idk wth
#include <stdio.h>
#include <stdarg.h>
#include <string.h>

// stm includes
#include "stm32f4xx.h"

// global structs used across modules ! 
#include "zbStructs.h"

// all config values here, sizes etc
#include "config.h"

// base protocol comm
#include "zbControl.h"
#include "zbComm.h"
#include "zbProtocol.h"
#include "zbControl.h"
#include "zbUtils.h"
#include "zbTime.h"

// modules 
#include "zbPWM.h"
#include "zbADC.h"
#include "zbGPIO.h"
#include "zbCAM.h"
//
//#include "zbI2C.h"

//#include "zbnRF24L01.h"
//#include "RFM70.H"
#include "unitTest.h"
#include "zbStateMachine.h"
#include "camera/dcmi_OV7670.h"


// really global vars 
// global for real
extern struct glbVars *newgVars; // new stuff from client
extern struct glbVars *mygVars;	 // what we send to client and use

/*
mygVars->VideoStat
1 taking picture A 
2 taking picture B
*/

//#ifdef __GNUC__
//  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
//     set to 'Yes') calls __io_putchar() */
//  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
//#else
//  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
//#endif /* __GNUC__ */
#endif
